//cLevy-luokan toteutus.  Osaa lukea ja kirjoittaa.
//Osaa poistaa kommentit ja tyhj�t.  T�ll� hetkell� kommenttimerkki on '#'.
//Joonas Koskinen
#include "cLevy.h"
#include <iostream>
#include <string>
#include <fstream>
#include <time.h>
using namespace std;

cLevy::cLevy() {
	vakio = "";
	//time_t nykyaika;
	time_t t;
	time(&t);
	aika = "Tiedostoa on muokattu viimeeksi ";
	aika += ctime(&t);
}

void cLevy::writeToFile(string filename, string value)
{
	ofstream toDisk;
	toDisk.open(filename.c_str());
	//Tarkistetaan, onko tiedosto mahdollista avata.
	if (!toDisk){ 
		cout << "Error while writing." << endl;
		toDisk.close();
	} else {
		//levylle << vakio << '\n';
		toDisk << value << '\n';
		toDisk.close();
	}
}

//Kirjoita_taulu metodi kirjoittaa annettuun tiedostoon string-taulukon
//int count maaran alkioita.  
void cLevy::writeArrayToFile(string filename, string taulu[], int count)
{
	ofstream toDisk;
	toDisk.open(filename.c_str());
	if (!toDisk){
		cout << "Error while writing." << endl;
		toDisk.close();
	}
	else
		toDisk << vakio << '\n';
	for(int i=0; i<count; i++)
	{
		merkkijono = taulu[i];
		toDisk << merkkijono << '\n';
	}
}

void cLevy::appendToFile(string filename, string value) {
	ofstream toDisk;
	toDisk.open(filename.c_str(), fstream::app);
	//Tarkistetaan, onko tiedosto mahdollista avata.
	if (!toDisk){ 
		cout << "Error while writing." << endl;
		toDisk.close();
	} else {
		//levylle << vakio << '\n';
		toDisk << value << '\n';
                cout << "Wrote to disk: " << value << endl;
		toDisk.close();
	}
    
}

string cLevy::readFile(string filename)
{
	this->varaus = "";
	this->data = "";
	ifstream fromDisk;

	if (!fromDisk) {
		cout << "Error while reading." << endl;
		fromDisk.close();
	} else {
		while(getline(fromDisk, varaus))
		{
			if (varaus[0] == '#' || varaus[0] == ' ') continue;
			data += varaus; 
			data += '\n';   
		}

		fromDisk.close();

		return data;
	}
	
	return "ERROR";
}



